/**
 * 登录流程：
 *      1.收集表单项数据
 *      2.前端验证
 *          验证用户信息是否合法，前端页不通过就提示用户，不需要发送请求给后端
 *          前端验证通过后，发送请求（携带账号密码）给服务器
 *      3.后端验证
 *          验证用户是否存在  用户不存在直接返回，告诉前端用户不存在
 *          用户存在则验证密码，密码不正确则返回并提示前端。
 *          密码正确则返回给前端数据，提示用户登录成功！（携带用户相关信息）
 */
import request from '../../utils/request'

Page({

    /**
     * 页面的初始数据
     */
    data: {
        phone: '', //手机号
        password: '' //用户密码
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {

    },

    //表单项内容发生改变的回调
    handleInput(event){        
        // let type = event.currentTarget.id;  //id 传值
        let type = event.currentTarget.dataset.type; //data-key:value  可以传多个值
        this.setData({
            [type]:event.detail.value
        })
    },

    //登录函数
    async login(){
        let {phone,password} = this.data;
        //前端验证
        if(!phone){
            wx.showToast({
              title: '手机号不能为空',
              icon: 'error',
            })
            return;
        }
        //定义正则表达式
        let phoneReg = /^1(3|4|5|6|7|8|9)\d{9}$/;
        if(!phoneReg.test(phone)){
            wx.showToast({
                title: '手机号不正确！',
                icon: 'error',
            })
            return;
        }

        //验证密码
        if(!password){
            wx.showToast({
                title: '密码不能为空！',
                icon: 'none',
            })
            return;
        }
        //后端验证
        let result = await request('/login/cellphone',{phone,password,isLogin:true})
        if(result.code === 200){
            wx.showToast({
              title: '登录成功！',
            })
            //将用户信息存储到本地
            wx.setStorageSync('userInfo', JSON.stringify(result.profile));
            // 跳转至个人中心
            wx.reLaunch({
              url: '/pages/personal/personal',
            })
        }else if(result.code === 400){
            wx.showToast({
                title: '手机号错误！',
                icon: 'error',
            })    
        }else if(result.code === 502){
            wx.showToast({
                title: '密码不正确！',
                icon: 'error',
            })
        }else{
            wx.showToast({
                title: '登录失败！请重新登录！'
            })
        }
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})